Stored Procedure কি এবং কেন ব্যবহার করা হয়?

MySQL Stored Procedure এবং Functions - মাইএসকিউএল (MySQL) - Database Tutorials

409

Stored Procedure হল MySQL (এবং অন্যান্য ডেটাবেস সিস্টেমে) একটি প্রাক-সংজ্ঞায়িত SQL কোড ব্লক যা ডেটাবেসের মধ্যে সংরক্ষিত থাকে এবং পরে প্রয়োজন অনুসারে একাধিক বার এক্সিকিউট করা যেতে পারে। এটি একটি ধরণের প্রোগ্রাম যা ডেটাবেসে নির্দিষ্ট কাজ সম্পাদন করার জন্য একসাথে বিভিন্ন SQL কুয়েরি বা লজিক ধারণ করে।

Stored Procedure একটি কার্যকরী উপায় হতে পারে যখন আপনি ডেটাবেসে সাধারণ বা জটিল কার্যক্রম একাধিকবার করতে চান এবং সেই কাজগুলোকে সেন্ট্রালাইজডভাবে সংরক্ষণ করতে চান।


Stored Procedure এর মূল বৈশিষ্ট্য

  1. সংরক্ষণ করা কোড:
    • একবার আপনি একটি stored procedure তৈরি করলে, তা ডেটাবেসে সংরক্ষিত থাকে এবং প্রয়োজনে পুনরায় চালানো যেতে পারে।
  2. প্যারামিটার সহ কাজ করতে সক্ষম:
    • Stored procedure কাস্টম প্যারামিটার গ্রহণ করতে পারে এবং সেগুলি ব্যবহার করে কুয়েরি বা লজিক সম্পাদন করতে পারে।
  3. ডেটাবেসের মধ্যে এক্সিকিউট করা হয়:
    • Stored procedure সরাসরি ডেটাবেসে সংরক্ষিত থাকে, ফলে এটি অ্যাপ্লিকেশন বা ক্লায়েন্ট সাইড থেকে আলাদা হয়ে কাজ করতে পারে।
  4. কোড পুনঃব্যবহারযোগ্যতা:
    • একবার একটি stored procedure তৈরি হলে, এটি একাধিক বার ব্যবহৃত হতে পারে, এবং এতে ডেটাবেসের কার্যক্রম আরও বেশি সুনির্দিষ্ট ও কার্যকরী হয়।
  5. অ্যাটমিক কাজের নিশ্চয়তা:
    • Stored procedure একটি অথবা একাধিক SQL কুয়েরি একসাথে পরিচালনা করতে পারে, যেমন একাধিক ডেটা আপডেট করা, যা একটি নির্দিষ্ট অর্ডারে হতে পারে।

Stored Procedure এর ব্যবহার:

1. কোড পুনঃব্যবহারযোগ্যতা (Code Reusability):

  • যখন একটি নির্দিষ্ট কার্যকলাপ বা SQL কুয়েরি বারবার ব্যবহৃত হয়, তখন আপনি একটি stored procedure তৈরি করে সেটি ব্যবহার করতে পারেন। এতে কোড লেখার পরিমাণ কমে যায় এবং আপনি একই কোড বারবার লিখতে বাধ্য হবেন না।

2. কর্মক্ষমতা উন্নয়ন (Performance Improvement):

  • Stored procedure ডেটাবেসে সংরক্ষিত থাকে এবং এটি এক্সিকিউট করার জন্য অ্যাপ্লিকেশন বা ক্লায়েন্ট সাইডে বারবার কুয়েরি পাঠানোর প্রয়োজন হয় না, ফলে কাজের গতি বাড়ে।
  • এতে ডেটাবেস ইঞ্জিনের ভিতরে কাজগুলো সম্পন্ন হয়, যা অনেক দ্রুত হয়।

3. নিরাপত্তা (Security):

  • Stored procedure ব্যবহার করলে, আপনি ডেটাবেসের সাথে সরাসরি কাজ করার পরিবর্তে একমাত্র নির্দিষ্ট কার্যক্রম বা কুয়েরি এক্সিকিউট করতে পারেন।
  • এর ফলে, ডেটাবেসের নিরাপত্তা উন্নত হয়, কারণ ব্যবহারকারী শুধুমাত্র প্যারামিটার ব্যবহার করে stored procedure কল করতে পারে এবং সরাসরি টেবিল অ্যাক্সেস করতে পারে না।

4. কমপ্লেক্স লজিক একত্রিত করা (Encapsulation of Complex Logic):

  • একটি stored procedure ব্যবহার করে ডেটাবেসের মধ্যে জটিল লজিক সংরক্ষণ করা যায়, যা সাধারণ SQL কুয়েরি দিয়ে সমাধান করা সম্ভব নয়।
  • যেমন, যদি আপনি ডেটাবেসের একাধিক টেবিল থেকে তথ্য একত্রিত করতে চান বা একটি কুয়েরি চলানোর পরে পরবর্তী সিদ্ধান্ত নিতে চান, তবে আপনি সেটি stored procedure এর মধ্যে রাখতে পারেন।

5. একাধিক কাজ একত্রে সম্পন্ন করা (Transaction Handling):

  • একটি stored procedure একাধিক SQL অপারেশন একযোগে পরিচালনা করতে পারে, যেমন INSERT, UPDATE, এবং DELETE। এটি কার্যকরীভাবে ট্রানজেকশন পরিচালনা করতে সক্ষম।

Stored Procedure তৈরির উদাহরণ

  1. Stored Procedure তৈরি করা:
DELIMITER CREATEPROCEDUREGetEmployeeDetails(INempidINT)BEGINSELECT*FROMemployeesWHEREemployeeid=empid;END

CREATE PROCEDURE GetEmployeeDetails(IN emp_id INT)
BEGIN
    SELECT * FROM employees WHERE employee_id = emp_id;
END 

DELIMITER ;

এখানে, GetEmployeeDetails একটি stored procedure যা একটি emp_id প্যারামিটার নেয় এবং employees টেবিল থেকে সংশ্লিষ্ট কর্মচারীর বিস্তারিত তথ্য রিটার্ন করে।

  1. Stored Procedure কল করা:
CALL GetEmployeeDetails(101);

এটি GetEmployeeDetails stored procedure কল করবে এবং employee_id = 101 এর তথ্য রিটার্ন করবে।

  1. Multiple SQL Statements একত্রে:
DELIMITER CREATEPROCEDUREUpdateEmployeeSalary(INempidINT,INnewsalaryDECIMAL)BEGINUPDATEemployeesSETsalary=newsalaryWHEREemployeeid=empid;COMMIT;END

CREATE PROCEDURE UpdateEmployeeSalary(IN emp_id INT, IN new_salary DECIMAL)
BEGIN
    UPDATE employees SET salary = new_salary WHERE employee_id = emp_id;
    COMMIT;
END 

DELIMITER ;

এটি একটি stored procedure যা নির্দিষ্ট কর্মচারীর বেতন আপডেট করবে এবং তারপর COMMIT কার্যকর করবে।


Stored Procedure কেন ব্যবহার করা হয়?

  1. পারফরমেন্স বৃদ্ধি: Stored procedure ডেটাবেস সিস্টেমে সরাসরি রান হয়, ফলে ক্লায়েন্ট সাইডে অতিরিক্ত কুয়েরি পাঠানোর প্রয়োজন হয় না এবং পারফরমেন্স উন্নত হয়।
  2. কোড পুনঃব্যবহারযোগ্যতা: একবার তৈরি করা stored procedure কে একাধিক জায়গায় ব্যবহার করা যায়, যা ডেভেলপমেন্টে সময় এবং প্রচেষ্টা বাঁচায়।
  3. নিরাপত্তা: ডেটাবেসে সরাসরি অ্যাক্সেস না দিয়ে নির্দিষ্ট কর্ম বা কার্যক্রম নির্ধারণ করা হয়, যা নিরাপত্তা বৃদ্ধিতে সহায়তা করে।
  4. কাস্টম লজিক সম্পাদন: আপনি complex লজিক এবং কাজগুলি stored procedure এর মাধ্যমে একত্রে সম্পাদন করতে পারেন, যেমন একাধিক টেবিল থেকে ডেটা প্রক্রিয়া করা।

সারাংশ

Stored Procedure হল একটি শক্তিশালী টুল যা ডেটাবেসের মধ্যে সংরক্ষিত SQL কোড ব্লক যা পুনঃব্যবহারযোগ্য, নিরাপদ এবং কার্যকরী। এটি ডেটাবেসের অপারেশনগুলি একত্রিত, অপটিমাইজ, এবং নিরাপদভাবে পরিচালনা করার জন্য ব্যবহৃত হয়। এর মাধ্যমে আপনি কোড পুনঃব্যবহার, কর্মক্ষমতা উন্নয়ন, নিরাপত্তা বৃদ্ধি এবং জটিল লজিক বাস্তবায়ন করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...